<!DOCTYPE html>
<html class="x-admin-sm">

    <head>
        <meta charset="UTF-8">
        <title>传感器管理</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<!--        <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />-->
        <link rel="stylesheet" href="./css/font.css">
        <link rel="stylesheet" href="./css/xadmin.css">
        <script src="./lib/layui/layui.js" charset="utf-8"></script>
        <script type="text/javascript" src="./js/xadmin.js"></script>
        <script type="text/javascript" src="./js/jquery.min.js"></script>
        <script type="text/javascript" src="./data/sensor.js"></script>
        <!--[if lt IE 9]>
          <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
          <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->

    </head>

    <body>
        <div class="x-nav">
            <span class="layui-breadcrumb">
                <a href="">首页</a>
                <a href="">传感器管理</a>
                <a>
                    <cite>设备信息管理</cite></a>
            </span>
            <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新">
                <i class="layui-icon layui-icon-refresh" style="line-height:30px"></i>
            </a>
        </div>
        <div class="layui-fluid">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-md12">
                    <div class="layui-card">
<!--                        <div class="layui-card-body ">-->
<!--                            <form class="layui-form layui-col-space5">-->
<!--                                <div class="layui-inline layui-show-xs-block">-->
<!--                                    <input class="layui-input" autocomplete="off" placeholder="开始日" name="start" id="start"></div>-->
<!--                                <div class="layui-inline layui-show-xs-block">-->
<!--                                    <input class="layui-input" autocomplete="off" placeholder="截止日" name="end" id="end"></div>-->
<!--                                <div class="layui-inline layui-show-xs-block">-->
<!--                                    <input type="text" name="username" placeholder="请输入用户名" autocomplete="off" class="layui-input"></div>-->
<!--                                <div class="layui-inline layui-show-xs-block">-->
<!--                                    <button class="layui-btn" lay-submit="" lay-filter="sreach">-->
<!--                                        <i class="layui-icon">&#xe615;</i></button>-->
<!--                                </div>-->
<!--                            </form>-->
<!--                        </div>-->
                        <span id="showMsg" style="color:#FF5722;"></span>
                        <div class="layui-card-body ">
<!--                            <table class="layui-table" lay-data="{url:'./user.json',page:true,toolbar: '#toolbarDemo',id:'test'}" lay-filter="test">-->
<!--                                <thead>-->
<!--                                    <tr>-->
<!--                                        <th lay-data="{type:'checkbox'}">ID</th>-->
<!--                                        <th lay-data="{field:'pid', width:80, sort: true}">ID</th>-->
<!--                                        <th lay-data="{field:'deviceId', width:120, sort: true, edit: 'text'}">设备标识</th>-->
<!--                                        <th lay-data="{field:'deviceIp', edit: 'text', minWidth: 150}">设备IP</th>-->
<!--                                        <th lay-data="{field:'deviceLocation', width:80,templet: '#switchTpl'}">位置信息</th>-->
<!--                                        <th lay-data="{field:'city', edit: 'text', minWidth: 100}">城市</th>-->
<!--                                        <th lay-data="{field:'experience', sort: true, edit: 'text'}">积分</th>-->
<!--                                        <th lay-data="{field:'dw_xinzhi',templet: function(d){ return d.dw_xinzhi.titel;}}">学校</th></tr>-->
<!--                                </thead>-->
<!--                            </table>-->
                            <table id="demo" class="layui-table" lay-filter="test_table"  style="height: 100%"></table>
                            <div id="test1"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </body>
    <script type="text/html" id="toolbarMenu">
        <div class = "layui-btn-container"  id="tableMenu">
<!--            <button class = "layui-btn layui-btn-sm" lay-event = "getCheckData" > 获取选中行数据 </button>-->
<!--            <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button >-->
            <button class = "layui-btn layui-btn-sm" lay-event = "addSensor" onclick="xadmin.open('添加设备','./sensor-add.html',600,400)" ><i class="layui-icon"></i> 新增传感器</button>
            <button class = "layui-btn layui-btn-danger" lay-event = "delCheckData" > <i class="layui-icon"></i>删除选中 </button>

            <button class = "layui-btn layui-btn-normal" lay-event = "wakeupSensor"  onclick="xadmin.open('唤醒选中设备','./sensorWakeUp.html',600,400)" > <i class=""></i>唤醒选中 </button>
        </div >
    </script>
    <script type="text/html" id="toolbarDemo">


        <div class = "layui-btn-container">

<!--            <button class = "layui-btn layui-btn-sm" lay-event = "getCheckData" > 获取选中行数据 </button>-->
<!--            <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button > -->
<!--            <button class = "layui-btn layui-btn-sm" lay-event = "isAll" > 验证是否全选</button>-->
            <button class = "layui-btn layui-btn-sm"   lay-event = "openDefault" > 开启关闭默认</button>
            <button class="layui-btn layui-btn-sm"  lay-event = "changeDeviceType" > 切换类型</button>
            <button class = "layui-btn layui-btn-danger"   lay-event = "delete" > 删除</button>

        </div >
    </script>


<!--    <script type="text/html" id="switchTpl">-->
<!--        &lt;!&ndash; 这里的checked的状态只是演示 &ndash;&gt;-->
<!--        <input type = "checkbox" name = "sex" value = "{{d.id}}" lay-skin = "switch"lay-text = "女|男" lay-filter = "sexDemo" {{ d.id == 10003 ? 'checked': ''}} >-->
<!--    </script>-->
<!--    <script>layui.use('laydate',-->
<!--        function() {-->
<!--            var laydate = layui.laydate;-->

<!--            //执行一个laydate实例-->
<!--            laydate.render({-->
<!--                elem: '#start' //指定元素-->
<!--            });-->

<!--            //执行一个laydate实例-->
<!--            laydate.render({-->
<!--                elem: '#end' //指定元素-->
<!--            });-->

<!--        });</script>-->
    <script>

       // layui.use('table',
       //    function() {
        //       var table = layui.table;
        //
        //         //监听单元格编辑
        //         table.on('edit(test)',
        //             function(obj) {
        //                 var value = obj.value //得到修改后的值
        //                     ,
        //                     data = obj.data //得到所在行所有键值
        //                     ,
        //                     field = obj.field; //得到字段
        //                 layer.msg('[ID: ' + data.id + '] ' + field + ' 字段更改为：' + value);
        //             });

                //头工具栏事件
           //      table.on('toolbar(test)',
           //          function(obj) {
           //              var checkStatus = table.checkStatus(obj.config.id);
           //              switch (obj.event) {
           //                  case 'getCheckData':
           //                      var data = checkStatus.data;
           //                      layer.alert(JSON.stringify(data));
           //                      break;
           //                  case 'getCheckLength':
           //                      var data = checkStatus.data;
           //                      layer.msg('选中了：' + data.length + ' 个');
           //                      break;
           //                  case 'isAll':
           //                      layer.msg(checkStatus.isAll ? '全选': '未全选');
           //                      break;
           //
           //              };
           //          });
           // });



    </script>

    <script type="text/javascript">
        let loginUser=JSON.parse(localStorage.getItem("robotUser"));
        function initSensorList(dataSensor){

            let toolbarInfo='#toolbarMenu';
            //如果不是管理员
            if(!sensorServer.getRoleIsAdmin()){
                toolbarInfo='';
            }
            layui.use('table', function () {
                var table = layui.table;
                //第一个实例
                table.render({
                    elem: '#demo'
                   // ,
                   // height: 500
                    , data: dataSensor,
                    //page: false //开启分页
                    limit:dataSensor.length,
                    toolbar: toolbarInfo,//'#toolbarMenu',
                    cols: [[ //表头
                       //
                        {field:"pid", checkbox:true,fixed: 'left'}
                        ,{field: 'pid', title: '编号', width: 80, sort: true, fixed: 'left'} //, fixed: 'left'

                        , {field: 'devicelocation', title: '安装位置', width: 200, edit: 'text'}
                        // , {field: 'robotpid', title: '机器人ID', width: 80, edit: 'text',display:'none'}
                        , {field: 'stationid', title: '识别码', width: 100, edit: 'text'}
                        , {field: 'deviceid', title: '设备唯一标识', width: 100, edit: 'text'}
                        , {field: 'deviceip', title: '传感器IP', width: 120, edit: 'text'}
                        , {field: 'deviceConnect', title: '传感器数据', width: 90}
                        , {field: 'ledDeviceIP', title: 'LED大屏', width: 120} //, hide: true
                        , {field: 'ledConnect', title: 'LED链接', width: 120}
                        , {field: 'ch4', title: 'CH4%', width: 70, edit: 'text'}
                        , {field: 'co2', title: 'CO2%', width: 70, edit: 'text'}
                        , {field: 'co', title: 'COppm', width: 70, edit: 'text'}
                        , {field: 'o2', title: 'O2%', width: 70, edit: 'text'}
                        , {field: 'temperature', title: '℃', width: 70, edit: 'text'}
                        , {field: 'humidity', title: '湿度(%)', width: 70, edit: 'text'}
                        , {field: 'h2s', title: 'H2S(ppm)', width: 70, edit: 'text'}
                        , {field: 'smokenormal', title: '烟感', width: 80}
                        , {field: 'opendefault', title: '默认数据', width: 80}
                        , {field: 'luxurydevice', title: '设备类型', width: 80}
                        // , {field: 'coordinatex', title: '坐标点X', width: 80, edit: 'text'}
                        // , {field: 'coordinatey', title: '坐标点Y', width: 80, edit: 'text'}
                        // , {field: 'coordinatez', title: '坐标点Z', width: 80, edit: 'text'}
                        , {field: '', title: '编辑', width: 250, sort: true, toolbar:'#toolbarDemo'} //,fixed: 'right'

                    ]]
                    ,loading:true,
                    done:function (res, curr, count) {
                        $("[data-field='smokenormal']").children().each(function(){
                            // if($(this).text()!=''){
                            //     $(this).text("正常")
                            // }
                            if($(this).text()==0){
                                $(this).text("正常")
                            }else if($(this).text()==1){
                                $(this).text("烟")
                            }else if($(this).text()==""){
                                $(this).text("")
                            }
                        });
                        $("[data-field='opendefault']").children().each(function(){
                            if($(this).text()==1){
                                $(this).text("手动")
                            }else if($(this).text()==0){
                                $(this).text("自动")
                            }
                        });
                        $("[data-field='ch4']").children().each(function(){
                            if($(this).text()==0||$(this).text()=="0"){
                                $(this).text("0.00")
                            }
                        });
                        $("[data-field='co2']").children().each(function(){
                            if($(this).text()==0||$(this).text()=="0"){
                                $(this).text("0.00")
                            }
                        });
                        $("[data-field='luxurydevice']").children().each(function(){
                            if($(this).text()==1){
                                $(this).text("豪华版")
                            }else if($(this).text()==0){
                                $(this).text("普通版")
                            }
                        });

                        $("[data-field='deviceConnect']").children().each(function(){
                            if($(this).text()=='true'){
                                $(this).text("通讯正常");
                                $(this)[0].style.color="green";
                            }else if($(this).text()=='false'){
                                $(this).text("设备断开");
                                $(this)[0].style.color="red";
                            }
                        });

                        $("[data-field='ledConnect']").children().each(function(){
                            if ($(this).text() != 'LED链接')  {
                                if ($(this).text() == '1') {
                                    $(this).text("通讯正常");
                                    $(this)[0].style.color="green";
                                } else {
                                    $(this).text("设备断开");
                                    $(this)[0].style.color="red";
                                }
                            }
                        });
                    }
                });

                //监听单元格编辑
                table.on('edit(test_table)',
                    function (obj) {
                        //如果不是管理员
                        if(!sensorServer.getRoleIsAdmin()){
                            alert("操作员无权限修改");
                            var oldText = $(this).prev().text();
                            $(this).val(oldText);
                            return;
                        }
                        var value = obj.value //得到修改后的值
                            ,
                            data = obj.data //得到所在行所有键值
                            ,
                            field = obj.field; //得到字段
                        layer.msg('[ID: ' + data.pid + '] ' + field + ' 字段更改为：' + value);
                        //updateTable(data.pid,value);
                        obj.data.robotpid=1;
                        var jsonResult = sensorServer.updateSensorInfo1(obj.data);
                        console.log(jsonResult);
                    });

                //监听行单击事件（双击事件为：rowDouble）
                //table.on('row(test_table)', function(obj){
                // var data = obj.data;
                // layer.alert(JSON.stringify(data), {
                //     title: '当前行数据：'
                // });

                //标注选中样式
                //obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
                //  });

                //头工具栏事件
                table.on('toolbar(test_table)', function(obj) {
                    var checkStatus = table.checkStatus(obj.config.pid);
                    switch (obj.event) {
                        case 'delete':
                            layer.msg('data:'+obj.data.pid);
                            del(obj);
                            break;
                        case 'delCheckData':
                             // var data = checkStatus.data;
                             // layer.alert(JSON.stringify(data));
                             // break;
                            layer.confirm('确认要删除吗？',function(index){
                                for(let i=0;i<obj.config.data.length;i++)
                                {
                                    if(obj.config.data[i].LAY_CHECKED){
                                        sensorServer.delSensorInfo(obj.config.data[i]);
                                        layer.msg('已删除!',{icon:1,time:1000});
                                    }
                                }
                                location.reload();
                            });
                            break;
                    };
                });
                //列里的工具栏
                table.on('tool(test_table)',
                    function(obj) {
                        //如果不是管理员
                        if(!sensorServer.getRoleIsAdmin()){
                            alert("操作员无权限修改");
                            return;
                        }
                        //var checkStatus = table.checkStatus(obj.config.pid);
                        switch (obj.event) {
                            case 'delete':
                                layer.msg('data:'+obj.data.pid);
                                del(obj);
                                break;
                            case 'openDefault':
                                layer.msg('data:'+obj.data.pid);
                                openDefaultClick(obj);
                                break;
                            case 'changeDeviceType':
                                    layer.msg('data:'+obj.data.pid);
                                    changeDeviceType(obj);
                                    break;
                        };
                    });
            });
        }

        function getData(page,limit){
             dataSensor=sensorServer.getSensorList({"page":page,"rows":limit});
             return dataSensor;
        }
        //加载默认数据
        $(function () {
            searchData();
        });

        function  searchData() {
            //var  dataSensor=getData(1,1000);
            // if (dataSensor!=null&&dataSensor!=undefined){
            //     initSensorList(dataSensor.data);
            // }else{
            //     layer.msg('加载失败！!',{icon:1,time:1000});
            // }
            var initData=getData(1,100);
            var total=initData.total;
            var dataList=initData.data;
            layui.use('table', function(){
                var laypage = layui.laypage;
                //执行一个laypage实例
                laypage.render({
                    elem: 'test1' //注意，这里的 test1 是 ID，不用加 # 号
                    ,count: total //数据总数，从服务端得到
                    //,limit:10
                    ,limit:100
                    ,limits:[100,150,200]
                    ,curr:1
                    ,group:5
                    ,layout: ['prev', 'page', 'next','limit','refresh','skip','count']
                    ,jump: function(obj, first){
                        //obj包含了当前分页的所有参数，比如：
                        console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
                        console.log(obj.limit); //得到每页显示的条数
                        //首次不执行
                        if(!first){
                            initSensorList(getData(obj.curr,obj.limit).data);
                        }else{
                            initSensorList(dataList);
                        }

                    }
                });
            });
        }

        function sensorInfo(pid,deviceId){
            this.pid=pid;
            this.deviceId=deviceId;
        }
        function  del(obj){
            layer.confirm('确认要删除吗？',function(index){
                //发异步删除数据
                sensorServer.delSensorInfo(obj.data);
               //  $(obj).parents("tr").remove();
               //  $(obj).remove();
                layer.msg('已删除!',{icon:1,time:1000});
                location.reload();
            });
        }
        function  openDefaultClick(obj){
            let msg="";
            if(obj.data.opendefault==1){
                msg="确认要设置成自动吗？,此修改将会在LED刷新后自动生效";
                obj.data.opendefault=0;
            }else{
                msg="确认要设置成手动吗？,此修改将会在LED刷新后自动生效，谨慎使用,仅供测试使用！";
                obj.data.opendefault=1;
            }
            layer.confirm(msg,function(index){
                var jsonResult = sensorServer.updateSensorInfo1(obj.data);
                layer.msg('已设置!',{icon:1,time:1000});
                location.reload();
            });
        }
        /* 豪华版普通版 机器人切换 */
        function  changeDeviceType(obj) {
            let msg="";
            if(obj.data.luxurydevice==1){
                msg="确认要取消豪华版机器人吗？";
                obj.data.luxurydevice=0;
            }else{
                msg="确认要开启豪华版机器人吗？";
                obj.data.luxurydevice=1;
            }
            layer.confirm(msg,function(index){
                var jsonResult = sensorServer.updateSensorInfo1(obj.data);
                layer.msg('已设置!',{icon:1,time:1000});
                location.reload();
            });
        }
        setInterval('searchData()',300000);

        //是否连接中控室
        setInterval('isConnectControlPC()',10000);

        function isConnectControlPC() {
            let dataInfo=sensorServer.isConnectControlPC({});
            if(dataInfo!=undefined&&dataInfo!=null){
                for (let i=0;i<dataInfo.data.length;i++){
                    let elme=dataInfo.data[i];
                    if(elme.updateTime!=undefined){
                        let date1=new Date();
                        let date2=new Date(elme.updateTime);
                        console.log(elme.updateTime);
                        let date3=(date1.getTime()-date2.getTime())/1000;   //相差秒数
                        let showText=caDataCha(date1,date2);
                        if(date3>120){
                            //layer.msg('中控室和云端已断开链接!',{icon:1,time:1000});
                            $("#showMsg").html("中控室和云端已断开链接!");
                           // const s2 = date2.getTime();

                            const Minute2 = Number((date1.getTime() - date2.getTime()) / 60000);
                           // const Minute1 = Number(fieldsValue.duration)
                            let text="最新链接状态失败！中控室和云端已断开链接 "+showText;//Math.floor(Minute2)+"分钟";

                            $("#showMsg").html(text);

                            layer.open({
                                type: 1
                                ,offset: "rb" //具体配置参考：http://www.layui.com/doc/modules/layer.html#offset
                                ,id: 'layerDemo1' //防止重复弹出
                                ,content: text  //弹出网页 ,content: 'http://www.baidu.com' 上边的type 设置为2即可
                                ,btn: '关闭全部'
                                ,btnAlign: 'c' //按钮居中
                                ,shade: 0 //不显示遮罩
                                ,yes: function(){
                                    layer.closeAll();
                                }
                            });
                            $("#layerDemo1").html(text);
                        }else{
                            $("#showMsg").html("");
                        }
                    }
                }
            }
        }

        function caDataCha(beginTime,endTime){
            //debugger;
            //var beginTime ='2018-03-16 08:11:10';//开始时间
            //var endTime = '2018-03-16 20:01:56';//结束时间
//开始和结束时间转为毫秒数,也可以用getTime()将日期转化为毫秒数
            var beginTime_mill =beginTime; //Date.parse(new Date(beginTime.replace(/-/g, "/")));
            var endTime_mill = endTime;//Date.parse(new Date(endTime.replace(/-/g, "/")));
//根据毫秒数的差值,求相差的天数或是小时等。
            var timeDiffer = Math.abs(endTime_mill - beginTime_mill);//开始时间和结束时间毫秒数的差值
//计算出相差天数
            var days = Math.floor(timeDiffer/(24*3600*1000));
            var remainder1 = timeDiffer % (24*3600*1000);//计算天数后剩余的毫秒数
//计算出小时数
            var hours = Math.floor(remainder1/(3600*1000));
            var remainder2 = remainder1 % (3600*1000);//计算小时数后剩余的毫秒数
//计算相差分钟数
            var minutes = Math.floor(remainder2/(60*1000));
            var remainder3 = remainder2 % (60*1000);//计算分钟数后剩余的毫秒数
//计算相差秒数
            var seconds=Math.round(remainder3/1000);
            if(days==0){
                return  (hours+"小时"+minutes+"分钟");//+seconds+"秒");
            }
            return  (" 相差："+days+"天"+hours+"小时"+minutes+"分钟");//+seconds+"秒");
        }
    </script>
    <script type="text/javascript">
        // $(document).ready(function(){
        //     let show=false;
        //     if(show==false){
        //         $("div[class='layui-btn-container']").eq(0).hide();
        //         $("th[class=' layui-unselect layui-table-col-special']").hide();
        //     }
        // });
        // window.onload=function(){
        //     // $("div[class='layui-btn-container']").eq(0).hide();
        //     // $("th[class=' layui-unselect layui-table-col-special']").hide();
        //     // $("div[class='layui-btn-container']").eq(0).hide();
        //     // $("th[class=' layui-unselect layui-table-col-special']").hide();
        //     $("#tableMenu").hide();
        // }

        function isShowRoleMenu() {
             return '#toolbarMenu'
        }
    </script>


</html>
